package collection;

import java.util.ArrayList;
import java.util.List;

/**
 * List接口：
 * 1.List接口继承自Collection接口，为有序可重复集合,提供了一套可以通过下标来操作元素的方法
 * 2.有两个常见的实现类：
 * 1)ArrayList:内部使用数组实现,查询性能更好（直接下标找到物理地址），增删性能不好
 * 2)LinkedList:内部使用链表实现，只记首尾，所以中间元素查询和增删性能不好，首位查询和增删性能好
 * 3.List集常用功能：get(),set()
 */
public class ListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("one");
        System.out.println("list:" + list);//list:[one, two, three, four, one]

        String e = list.get(3);//获取下标3位置的元素
        System.out.println(e);//four
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("------------------------------------");

        list.set(2, "six");//将list中下标为2的元素设置为six------常规用法
        //String old = list.set(2,"six");//将list中下标为2的元素设置为six,同时返回原数据赋值给old
        //System.out.println(old);//three
        System.out.println("list：" + list);//list：[one, two, six, four, one]
    }
}
